Micron Document
Livres et Wikis | Archives | Info


Merge (SQL)
layout: Wide Β· Narrow Β· Centered
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
La commande Merge en SQL est une instruction qui permet de mettre Γ  jour ou insΓ©rer un ou plusieurs tuples dans une table (ou vue) d'une base de donnΓ©es relationnelle Γ  partir de donnΓ©es sources, selon des conditions. Cette commande a Γ©tΓ© rajoutΓ©e dans le standard SQL:2003, et Γ©tendue dans le standard SQL:2008, et permet d'Γ©viter des combinaisons d’instructions Insert, Update et Delete sur la table cible.

Contents

β€’ Syntaxe

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Syntaxe

MERGE INTO table_cible T -- table Γ  modifier
USING donnΓ©es_source S -- Listes des donnΓ©es sources
ON (Conditions1) -- Condition de correspondance/jointure
WHEN MATCHED THEN -- Si vrai
UPDATE SET t.colonne1 = valeur1 [, t.colonne2 = valeur2 ...] ---- Mise Γ  jour
DELETE WHERE (Conditions2) ---- ou Suppression sous condition
WHEN NOT MATCHED THEN -- Si faux
INSERT [ ( liste_colonnes) ] { VALUES ( liste_valeurs) | DEFAULT VALUES } ---- Ajout

Une jointure droite externe (Right outer join) est effectuΓ©e entre la cible et la source. Si plusieurs tuples de la source correspondent Γ  un mΓͺme tuple de la cible alors une erreur est levΓ©e. Dans la syntaxe, Conditions1 reprΓ©sente la condition de jointure qui permet de dΓ©finir si un tuple cible doit Γͺtre ajoutΓ© ou mise Γ  jour (ou supprimΓ©e si on est dans le cas de la Conditions2). Cela signifie que si un tuple source correspond selon la condition de jointure Γ  un tuple de la table cible alors les instructions dans WHEN MATCHED THEN sont effectuΓ©es. Si un tuple source ne correspond pas Γ  la condition de jointure alors les instructions dans WHEN NOT MATCHED THEN sont effectuΓ©es.

Les donnΓ©es sources peuvent provenir d'une table, d'une vue ou d'une sous requΓͺte.

Notes et rΓ©fΓ©rences

β€’ (en) Cet article est partiellement ou en totalitΓ© issu de l’article de WikipΓ©dia en anglais intitulΓ© Β« Merge (SQL) Β» (voir la liste des auteurs).

Liens externes

β€’ Documentation du Merge pour DB2 z/OS
β€’ Documentation du Merge d'Oracle 11g R2
β€’ Documentation du Merge dans SQL Server 2012

β€’ Portail des bases de donnΓ©es